<?php
// +----------------------------------------------------------------------
// | Author: July
// +----------------------------------------------------------------------
// | 创建时间: 2023-12-27 20:39:42
// +----------------------------------------------------------------------
// | 包公共方法文件
// +----------------------------------------------------------------------

/**
 * 删除代码中的所有注释
 * @Author   July
 * @DateTime 2024-01-14T08:49:48+0800
 * @param    string                   $code 需要清除注释的代码
 * @return   string                         返回没有注释的代码
 */
function removeExplanatoryNote($code = '')
{
    //先临时把://替换成别的字符串，避免网址被替换掉
    $code = str_replace("://", ":/:/:/:/", $code);
    //替换掉模型文件中的所有注释，避免下面获取权限按钮的时候获取到注释掉的权限按钮v
    //删除EOT块
    $code = preg_replace('/<<<EOT[\s\S]*?EOT;/s', '', $code);
    //删除<script>块
    $code = preg_replace('/<script[\s\S]*?<\/script>/s', '', $code);
    //删除<style>块
    $code = preg_replace('/<style[\s\S]*?<\/style>/s', '', $code);
    //删除块注释
    $code = preg_replace('/\/\*\*[\s\S]*?\*\//s', '', $code);
    //删除行注释
    $code = preg_replace('~//(.*)+\n~', '', $code);
    //把刚才替换成别的字符串的://恢复
    $code = str_replace(":/:/:/:/", "://", $code);
    return $code;
}